package com.weixing.mall.provider.model.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.weixing.mall.core.support.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 代理商模块-代理商表
 * </p>
 *
 * @author Small
 * @since 2020-03-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("amc_agent")
public class Agent extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 代理商父级ID
     */
    private Long parentId;

    /**
     * 返利规则
     */
    private Integer rebateRule;

    /**
     * 代理商结构树（等级：id|等级：id）
     */
    private String agentTreePath;

    /**
     * 代理商编号
     */
    private String agentSn;

    /**
     * 代理商等级
     */
    private Integer agentLevel;

    /**
     * 代理商类型 0金级，1银级
     */
    private Integer agentType;

    /**
     * 代理商名称
     */
    private String agentName;

    /**
     * 代理商到期时间
     */
    private Date maturityTime;

    /**
     * 上次到期时间
     */
    private Date lastMaturityTime;


    /**
     * 生效时间
     */
    private Date effectTime;

    /**
     * 微信号
     */
    private String wechatNum;

    /**
     * 微信昵称
     */
    private String wechatNickName;

    /**
     * 邮箱
     */
    private String email;
    /**
     * 手机号
     */
    private String mobile;

    /**
     * 是否可用 0禁用，1启用
     */
    private Integer isEnable;

    /**
     * 信息是否完善 0未完善，1已完善
     */
    private Integer isInfoPerfect;

    /**
     * 代理商性质 0试用，1正式
     */
    private Integer isOfficial;

    /**
     * 是否活跃 0不活跃；1活跃
     */
    private Integer isActive;


    /**
     * 是否绑定了代理商结构树
     */
    private Integer isBind;

    /**
     * 个人折扣
     */
    private BigDecimal discount;

    /**
     * 是否拥有广告权限 0没有，1拥有
     */
    private Integer isAdsAuth;

    /**
     * 可预约广告数量
     */
    private Integer adsLimit;

    /**
     * 备注
     */
    private String remark;

    /**
     * 乐观锁
     */
    @Version
    private Integer revision;

    /**
     * 创建时间
     */
    private Date createdTime;

    /**
     * 代理费（按月）
     */
    private BigDecimal agencyFeeMonth;

    /**
     * 更新时间
     */
    private Date updatedTime;

    /**
     * 代理费金额（按年）
     */
    private BigDecimal agencyFeeYear;

    /**
     * 提现密码
     */
    private String withdrawPwd;

    /**
     * 首次缴费时间
     */
    private Date firstRenewTime;

    /**
     * 分红团队
     */
    private Long bonusGroupId;

    /**
     * 所属客服
     */
    private Long customerId;

    /**
     * 所属客服姓名（冗余）
     */
    private String customerName;

    /**
     * 客服绑定时间
     */
    private Date customerBindTime;

    /**
     * 经销商名字
     */
    private String dealer;

    /**
     * 经销商ID
     */
    private Long dealerId;

    /**
     * 所属一级代理id
     */
    private Long level1st;

    /**
     * 所属二级代理id
     */
    private Long level2nd;

    /**
     * 所属三级代理id
     */
    private Long level3rd;

    /**
     * 所属四级代理id
     */
    private Long level4th;


    /**
     * 代理锁定时间（发生等级变动当天，不可交易）
     */
    private String lockDate;


    /**
     * 密码
     */
    private String  password;


    /**
     * 推荐人优惠id
     */
    private String inviteId;


    /**
     * 代理标签
     */
    private String label;


    /**
     * 昵称
     */
    private String nickName;

    /**
     * 交易日期
     */
    private String tradeDate;

    /**
     * 是否加入黑名单   0 否 ； 1 是
     */
    private Integer isBlack;

    /**
     * 原上级（只记录晋升操作用于计算是否产生3个平一级的分红情况）
     */
    private Long orgParentId;
    /**
     * 原上级的等级（只记录晋升操作用于计算是否产生3个平一级的分红情况）
     */
    private Integer orgParentLv;
}
